7장 로드 밸런서


로드 밸런서란

성능을 향상시키기 위해 스케일 아웃을 할 때 로드 밸런서 같은 시스템이 필요하다.

로드 밸런서의 역할

  1. 요청 분산
    기본적으로 로드밸런서는 인터넷으로부터 전송된 요청을 여러 웹서버에 균등하게 분산한다.
  2. SSL처리
    송수신하는 데이터를 암호화하는 SSL처리를 해준다. HTTPS 통신에서 SSL을 이용한다. 로드밸런서가 암호화 복호화 처리를 해준다.
  3. 부정 요청 대응
    부정한 접근을 대응해주는 시스템 제공

AWS에서 제공하는 로드 밸런서

AWS에서는 ELB라는 서비스로 로드 밸런서를 제공한다.

로드 밸런서 생성

ALB 설정 항목에는 2가지가 있다.

EC2 -> 로드 밸런서 -> ALB

  1. VPC와 가용영역 설정
    Attachments/Picture/Pasted image 20231206214917.png|500
    vpc를 지정하고 subnet을 매핑
    public subnet 매핑
  2. 보안그룹 설정
    default, elb
  3. 리스너 및 라우팅 설정
    라우팅 대상 그룹 생성 - 웹 서버에 접근할 때 접근 프로콜과 포트 번호 설정 (여기서는 http, 3000번 이용)
    타깃 등록 - webserver ec2 지정.

작동 확인하기

http 요청 받을 준비

간단하게 web server ec2에 접속해서 http 서버를 가동해본다.

<html><body>hello world</body></html>

만들어서 파이썬으로 간단하게 http 서버 실행

python3 -m http.server 3000

Attachments/Picture/Pasted image 20231206220217.png
로드밸런서가 healthy check가 하는 것을 통해 확인할 수 있다.

요청 라우팅 확인

로드밸런서는 곧바로 요청을 라우팅 하지 않고, 헬스 체크를 하고 해당 요청들이 모두 성공하면 라우팅 하기 시작한다.
해당 로드밸런서에 대상 탭에서 healthy status 확인할 수 있다.
Attachments/Picture/Pasted image 20231206220425.png

브라우저로 접근

로드밸런서의 DNS로 브라우저 접근이 가능하다